package de.fhb.formel1.dbhibernate.persistence;

// Generated 14.01.2010 11:25:02 by Hibernate Tools 3.2.2.GA

import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Rennstall generated by hbm2java
 */
@Entity
@Table(name = "Rennstall")
public class Rennstall implements java.io.Serializable {

	private Integer rennstallId;
	private Saison saison;
	private String name;
	private BigDecimal punkte;
	private Set<Setztein> einsaetze = new HashSet<Setztein>(0);

	Rennstall() {
	}

	public Rennstall(Saison saison, String name) {
		this.saison = saison;
		this.name = name;
		this.punkte = BigDecimal.ZERO;
	}

	private Rennstall(Saison saison, String name, BigDecimal punkte) {
		this.saison = saison;
		this.name = name;
		this.punkte = punkte;
	}

	private Rennstall(Saison saison, String name, BigDecimal punkte,
			Set<Setztein> einsaetze) {
		this.saison = saison;
		this.name = name;
		this.punkte = punkte;
		this.einsaetze = einsaetze;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "RennstallID", unique = true, nullable = false)
	public Integer getRennstallId() {
		return this.rennstallId;
	}

	private void setRennstallId(Integer rennstallId) {
		this.rennstallId = rennstallId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "Jahr", nullable = false)
	public Saison getSaison() {
		return this.saison;
	}

	public void setSaison(Saison saison) {
		this.saison = saison;
	}

	@Column(name = "Name", nullable = false, length = 40)
	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Column(name = "Punkte", nullable = false, precision = 7)
	public BigDecimal getPunkte() {
		return this.punkte;
	}

	private void setPunkte(BigDecimal punkte) {
		this.punkte = punkte;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "rennstall")
	public Set<Setztein> getEinsaetze() {
		return this.einsaetze;
	}

	public void setEinsaetze(Set<Setztein> einsaetze) {
		this.einsaetze = einsaetze;
	}

}
